Skip to content

feat(components): add DropdownMenu component (DS-5055) - #457

Open
KamilEmeleev wants to merge 16 commits into
mainfrom
feat/ds-5055
Open

feat(components): add DropdownMenu component (DS-5055)#457
KamilEmeleev wants to merge 16 commits into
mainfrom
feat/ds-5055

Conversation

@KamilEmeleev

@KamilEmeleev KamilEmeleev commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features
    • Added an accessible DropdownMenu with items, sections, separators, submenus, links, footers, configurable triggers, search, filtering, selection, placement, and controlled open-state support.
    • Added English and Russian labels for search and empty states.
  • Documentation
    • Added comprehensive usage guidance and interactive examples.
  • Bug Fixes
    • Improved autocomplete focus behavior, popover handling, and multi-select item styling.
  • Chores
    • Marked DropdownMenu as completed and experimental in the roadmap.

@KamilEmeleev KamilEmeleev added the enhancement New feature or request label Aug 12, 2026
@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 3c681f08-adaa-4c20-b269-2f4c3b2b25f5

📥 Commits

Reviewing files that changed from the base of the PR and between 774b341 and a18333d.

📒 Files selected for processing (2)
  • packages/components/src/components/DropdownMenu/components/DropdownMenuPopover/DropdownMenuPopover.module.css
  • packages/components/src/components/Popover/Popover.module.css
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/components/src/components/DropdownMenu/components/DropdownMenuPopover/DropdownMenuPopover.module.css

📝 Walkthrough

Walkthrough

This pull request adds the client-side DropdownMenu component with compound subcomponents, search, selection, sections, submenus, popover placement, Storybook stories, tests, documentation, and public API registration. It also updates shared popover and text-field integrations.

Changes

DropdownMenu

Layer / File(s) Summary
React Aria primitive and field integration
packages/components/src/components/Input/Input.tsx, packages/components/src/components/Textarea/Textarea.tsx, packages/primitives/src/components/TextField/*, packages/components/src/components/SearchInput/*, packages/primitives/src/index.ts
Text fields now detect their rendered control through context. Search inputs now merge field context props and refs. React Aria menu primitives and contexts are exported.
Menu composition and popover behavior
packages/components/src/components/DropdownMenu/*, packages/components/src/components/Popover/*, packages/components/src/styles/utility.module.css
Added the compound DropdownMenu API with content, items, sections, submenus, autocomplete, headers, footers, and pressable support. Popovers now group nested submenus and support configurable flipping.
Stories, tests, documentation, and public API
packages/components/src/components/DropdownMenu/DropdownMenu.stories.tsx, packages/components/src/components/DropdownMenu/DropdownMenu.test.tsx, packages/components/src/components/DropdownMenu/DropdownMenu.mdx, tools/*, .storybook/components/Roadmap/data.ts
Added examples, behavior tests, usage documentation, API Extractor configuration, generated API reports, and roadmap status updates.

Estimated code review effort: 4 (Complex) | ~45 minutes

Merge Risk: ⚪ Minimal · up to a1833

This PR adds the DropdownMenu component and related updates; no actionable merge-blocking risk remains based on the supplied evidence, so it is merge-ready after normal checks and review.

Sequence Diagram(s)

sequenceDiagram
  participant Consumer
  participant DropdownMenu
  participant ReactAriaMenu
  participant DropdownMenuPopover
  participant PopoverInner
  Consumer->>DropdownMenu: render trigger and compound menu
  DropdownMenu->>ReactAriaMenu: provide menu items and state
  ReactAriaMenu->>DropdownMenuPopover: open menu overlay
  DropdownMenuPopover->>PopoverInner: provide placement and submenu grouping
  PopoverInner-->>Consumer: render menu popover
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely identifies the main change: adding the new DropdownMenu component.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/ds-5055

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown

Visit the preview URL for this PR (updated for commit a18333d):

https://react-koobiq-next--prs-457-uwokp1sa.web.app

(expires Wed, 19 Aug 2026 07:31:29 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: fc29847d4a9e5cb1adf458c76a9b681c76e2eeff

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (2)
packages/components/src/components/DropdownMenu/DropdownMenu.stories.tsx (1)

42-53: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add DropdownMenu.Pressable to meta.subcomponents.

The compound component exposes Pressable (see packages/components/src/components/DropdownMenu/DropdownMenu.tsx lines 45-60), and the Separators story uses it at line 440. The docs page will not list it.

♻️ Proposed change
     'DropdownMenu.Autocomplete': DropdownMenu.Autocomplete,
     'DropdownMenu.Footer': DropdownMenu.Footer,
+    'DropdownMenu.Pressable': DropdownMenu.Pressable,
   },

As per coding guidelines: "Add every slot of a compound component to meta.subcomponents."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/components/src/components/DropdownMenu/DropdownMenu.stories.tsx`
around lines 42 - 53, Add DropdownMenu.Pressable to the meta.subcomponents
mapping alongside the other DropdownMenu compound-component slots, using the
existing DropdownMenu.Pressable symbol. Keep all current subcomponent entries
unchanged.

Source: Coding guidelines

packages/components/src/components/DropdownMenu/DropdownMenu.test.tsx (1)

474-474: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add the non-null assertion for the indexed element.

Other clicks in this file use getItems()[1]!. Line 474 omits it. If noUncheckedIndexedAccess is enabled in the TypeScript config, userEvent.click receives Element | undefined and the type check fails.

♻️ Proposed change
-      await userEvent.click(screen.getAllByRole('menuitemcheckbox')[0]);
+      await userEvent.click(screen.getAllByRole('menuitemcheckbox')[0]!);
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/components/src/components/DropdownMenu/DropdownMenu.test.tsx` at
line 474, Add a non-null assertion to the indexed result of
getAllByRole('menuitemcheckbox') in the affected userEvent.click call, matching
the existing getItems()[1]! usage and satisfying strict indexed-access typing.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/components/src/components/DropdownMenu/DropdownMenu.mdx`:
- Line 51: Update the DropdownMenu documentation by changing “Client side
routing” to “Client-side routing” and removing the trailing period from the
DropdownMenu.Pressable list item so list punctuation is consistent.

In `@packages/primitives/src/components/Textarea/types.ts`:
- Around line 1-3: Restore the public TextareaRef type alias in the Textarea
types module, using the existing ComponentRef import and the Textarea component
symbol, while preserving the TextareaProps re-export.

In `@tools/public_api_guard/react-primitives.api.md`:
- Around line 411-419: Address the breaking public API change involving Input
and Textarea by either adding a changeset for `@koobiq/react-primitives` that
documents the required breaking-version update, or preserving the previous
Input/Textarea props and context contracts while exposing the new RAC types.
Update the relevant public exports and type definitions around Input, Textarea,
InputProps, and InputContext accordingly.

---

Nitpick comments:
In `@packages/components/src/components/DropdownMenu/DropdownMenu.stories.tsx`:
- Around line 42-53: Add DropdownMenu.Pressable to the meta.subcomponents
mapping alongside the other DropdownMenu compound-component slots, using the
existing DropdownMenu.Pressable symbol. Keep all current subcomponent entries
unchanged.

In `@packages/components/src/components/DropdownMenu/DropdownMenu.test.tsx`:
- Line 474: Add a non-null assertion to the indexed result of
getAllByRole('menuitemcheckbox') in the affected userEvent.click call, matching
the existing getItems()[1]! usage and satisfying strict indexed-access typing.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 43ff35a1-1252-4f05-aaa0-c3cf9d548ba6

📥 Commits

Reviewing files that changed from the base of the PR and between 3585b1f and 5c1219d.

📒 Files selected for processing (65)
  • .storybook/components/Roadmap/data.ts
  • packages/components/src/components/DropdownMenu/DropdownMenu.mdx
  • packages/components/src/components/DropdownMenu/DropdownMenu.stories.tsx
  • packages/components/src/components/DropdownMenu/DropdownMenu.test.tsx
  • packages/components/src/components/DropdownMenu/DropdownMenu.tsx
  • packages/components/src/components/DropdownMenu/__stories__/avatar.webp
  • packages/components/src/components/DropdownMenu/components/DropdownMenuAutocomplete/DropdownMenuAutocomplete.module.css
  • packages/components/src/components/DropdownMenu/components/DropdownMenuAutocomplete/DropdownMenuAutocomplete.tsx
  • packages/components/src/components/DropdownMenu/components/DropdownMenuAutocomplete/index.ts
  • packages/components/src/components/DropdownMenu/components/DropdownMenuAutocomplete/types.ts
  • packages/components/src/components/DropdownMenu/components/DropdownMenuContent/DropdownMenuContent.module.css
  • packages/components/src/components/DropdownMenu/components/DropdownMenuContent/DropdownMenuContent.tsx
  • packages/components/src/components/DropdownMenu/components/DropdownMenuContent/index.ts
  • packages/components/src/components/DropdownMenu/components/DropdownMenuContent/types.ts
  • packages/components/src/components/DropdownMenu/components/DropdownMenuFooter/DropdownMenuFooter.tsx
  • packages/components/src/components/DropdownMenu/components/DropdownMenuFooter/index.ts
  • packages/components/src/components/DropdownMenu/components/DropdownMenuFooter/types.ts
  • packages/components/src/components/DropdownMenu/components/DropdownMenuHeader/DropdownMenuHeader.tsx
  • packages/components/src/components/DropdownMenu/components/DropdownMenuHeader/index.ts
  • packages/components/src/components/DropdownMenu/components/DropdownMenuHeader/types.ts
  • packages/components/src/components/DropdownMenu/components/DropdownMenuItem/DropdownMenuItem.module.css
  • packages/components/src/components/DropdownMenu/components/DropdownMenuItem/DropdownMenuItem.tsx
  • packages/components/src/components/DropdownMenu/components/DropdownMenuItem/index.ts
  • packages/components/src/components/DropdownMenu/components/DropdownMenuItem/types.ts
  • packages/components/src/components/DropdownMenu/components/DropdownMenuPopover/DropdownMenuPopover.module.css
  • packages/components/src/components/DropdownMenu/components/DropdownMenuPopover/DropdownMenuPopover.tsx
  • packages/components/src/components/DropdownMenu/components/DropdownMenuPopover/index.ts
  • packages/components/src/components/DropdownMenu/components/DropdownMenuPopover/types.ts
  • packages/components/src/components/DropdownMenu/components/DropdownMenuSection/DropdownMenuSection.tsx
  • packages/components/src/components/DropdownMenu/components/DropdownMenuSection/index.ts
  • packages/components/src/components/DropdownMenu/components/DropdownMenuSection/types.ts
  • packages/components/src/components/DropdownMenu/components/DropdownMenuSubmenuTrigger/DropdownMenuSubmenuTrigger.tsx
  • packages/components/src/components/DropdownMenu/components/DropdownMenuSubmenuTrigger/index.ts
  • packages/components/src/components/DropdownMenu/components/DropdownMenuSubmenuTrigger/types.ts
  • packages/components/src/components/DropdownMenu/components/index.ts
  • packages/components/src/components/DropdownMenu/index.ts
  • packages/components/src/components/DropdownMenu/intl.ts
  • packages/components/src/components/DropdownMenu/types.ts
  • packages/components/src/components/Input/Input.tsx
  • packages/components/src/components/Input/types.ts
  • packages/components/src/components/Popover/PopoverGroupContext.ts
  • packages/components/src/components/Popover/PopoverInner.tsx
  • packages/components/src/components/Popover/types.ts
  • packages/components/src/components/SearchInput/SearchInput.tsx
  • packages/components/src/components/SearchInput/SearchInputContext.ts
  • packages/components/src/components/Textarea/Textarea.tsx
  • packages/components/src/components/Textarea/types.ts
  • packages/components/src/components/index.ts
  • packages/components/src/styles/utility.module.css
  • packages/primitives/src/components/Input/Input.tsx
  • packages/primitives/src/components/Input/InputContext.tsx
  • packages/primitives/src/components/Input/types.ts
  • packages/primitives/src/components/TextField/TextField.test.tsx
  • packages/primitives/src/components/TextField/TextField.tsx
  • packages/primitives/src/components/TextField/types.ts
  • packages/primitives/src/components/Textarea/Textarea.tsx
  • packages/primitives/src/components/Textarea/TextareaContext.tsx
  • packages/primitives/src/components/Textarea/types.ts
  • packages/primitives/src/index.ts
  • tools/api-extractor/config.json
  • tools/public_api_guard/components/DropdownMenu.api.md
  • tools/public_api_guard/components/Input.api.md
  • tools/public_api_guard/components/Popover.api.md
  • tools/public_api_guard/components/Textarea.api.md
  • tools/public_api_guard/react-primitives.api.md
💤 Files with no reviewable changes (2)
  • packages/primitives/src/components/TextField/types.ts
  • packages/components/src/components/Textarea/types.ts

Comment thread packages/components/src/components/DropdownMenu/DropdownMenu.mdx Outdated
Comment thread packages/primitives/src/components/Textarea/types.ts Outdated
Comment thread tools/public_api_guard/react-primitives.api.md Outdated
@artembelik

Copy link
Copy Markdown
Contributor

если триггер расположен в нижней точке и меню не влазит, то нужно открывать его вверх

image

@artembelik

Copy link
Copy Markdown
Contributor

блокируется скролл при открытии, это особенность реализации?

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new DropdownMenu compound component to @koobiq/react-components, built on React Aria primitives, including support for sections, separators, nested submenus, and searchable menus via Autocomplete. The PR also adjusts primitives and popover behavior to better support menu/search integration and submenu overlay grouping.

Changes:

  • Introduced DropdownMenu component (implementation, types, styles, stories, docs, and tests) and added it to the public API extractor config/guards.
  • Updated primitives to re-export additional RAC menu/autocomplete primitives and refactored Input/Textarea primitives to rely on react-aria-components implementations and contexts.
  • Enhanced Popover to support submenu grouping (groupRef sharing) and added shouldFlip / extended anchorRef typing for overlay positioning.

Reviewed changes

Copilot reviewed 64 out of 65 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tools/public_api_guard/react-primitives.api.md Updates primitives API report to reflect new RAC re-exports and context/type changes.
tools/public_api_guard/components/Textarea.api.md Updates components API report after TextFieldProps shape change.
tools/public_api_guard/components/Popover.api.md Updates components API report for new PopoverProps/PopoverInnerProps fields.
tools/public_api_guard/components/Input.api.md Updates components API report after TextFieldProps shape change.
tools/public_api_guard/components/DropdownMenu.api.md Adds API report for the new DropdownMenu component.
tools/api-extractor/config.json Adds DropdownMenu to the API extractor components list.
packages/primitives/src/index.ts Re-exports RAC menu/autocomplete primitives and related contexts/types.
packages/primitives/src/components/TextField/types.ts Removes inputElementType from the primitive TextField base props.
packages/primitives/src/components/TextField/TextField.tsx Refactors TextField to infer element type at runtime and integrate FieldInputContext.
packages/primitives/src/components/TextField/TextField.test.tsx Adds coverage ensuring Autocomplete works with Input/Textarea without an explicit element type prop.
packages/primitives/src/components/Textarea/types.ts Switches TextareaProps typing to RAC TextAreaProps.
packages/primitives/src/components/Textarea/TextareaContext.tsx Replaces custom textarea context with RAC TextAreaContext + useSlottedContext.
packages/primitives/src/components/Textarea/Textarea.tsx Re-exports RAC TextArea as Textarea.
packages/primitives/src/components/Input/types.ts Switches InputProps typing to RAC InputProps.
packages/primitives/src/components/Input/InputContext.tsx Replaces custom input context with RAC InputContext + useSlottedContext.
packages/primitives/src/components/Input/Input.tsx Re-exports RAC Input.
packages/components/src/styles/utility.module.css Adjusts multi-select list-item styling to work for menus (no aria-multiselectable on role="menu").
packages/components/src/components/Textarea/types.ts Removes inputElementType from omitted TextFieldProps surface.
packages/components/src/components/Textarea/Textarea.tsx Drops inputElementType="textarea" when rendering FormField as={TextField}.
packages/components/src/components/SearchInput/SearchInputContext.ts Introduces a context for SearchInput to allow parent-provided defaults.
packages/components/src/components/SearchInput/SearchInput.tsx Merges SearchInput props from its own context and FieldInputContext for Autocomplete/menu usage.
packages/components/src/components/Popover/types.ts Adds shouldFlip, extends PopoverInnerProps (anchorRef widened, trigger added).
packages/components/src/components/Popover/PopoverInner.tsx Adds submenu grouping support and wires groupRef through usePopover.
packages/components/src/components/Popover/PopoverGroupContext.ts Adds context to share the outermost popover container across a popover group (menu + submenus).
packages/components/src/components/Input/types.ts Removes inputElementType from omitted TextFieldProps surface.
packages/components/src/components/Input/Input.tsx Drops inputElementType="input" when rendering FormField as={TextField}.
packages/components/src/components/index.ts Exports the new DropdownMenu from the components entry point.
packages/components/src/components/DropdownMenu/types.ts Defines public DropdownMenu prop types and exported placement/trigger constants.
packages/components/src/components/DropdownMenu/intl.ts Adds localized strings for dropdown-menu search and empty states.
packages/components/src/components/DropdownMenu/index.ts Adds DropdownMenu barrel exports (root, types, subcomponents).
packages/components/src/components/DropdownMenu/DropdownMenu.tsx Implements compounded DropdownMenu API wiring subcomponents onto the root.
packages/components/src/components/DropdownMenu/DropdownMenu.test.tsx Adds comprehensive behavioral tests for open state, keyboard nav, selection, submenus, and search.
packages/components/src/components/DropdownMenu/DropdownMenu.stories.tsx Adds Storybook stories demonstrating all DropdownMenu features.
packages/components/src/components/DropdownMenu/DropdownMenu.mdx Adds documentation page for DropdownMenu usage and API.
packages/components/src/components/DropdownMenu/components/index.ts Exports DropdownMenu subcomponents.
packages/components/src/components/DropdownMenu/components/DropdownMenuSubmenuTrigger/types.ts Defines props for submenu trigger wrapper.
packages/components/src/components/DropdownMenu/components/DropdownMenuSubmenuTrigger/index.ts Barrel export for submenu trigger.
packages/components/src/components/DropdownMenu/components/DropdownMenuSubmenuTrigger/DropdownMenuSubmenuTrigger.tsx Wraps RAC SubmenuTrigger for component API consistency.
packages/components/src/components/DropdownMenu/components/DropdownMenuSection/types.ts Defines props for sections (incl. optional title).
packages/components/src/components/DropdownMenu/components/DropdownMenuSection/index.ts Barrel export for section.
packages/components/src/components/DropdownMenu/components/DropdownMenuSection/DropdownMenuSection.tsx Implements section rendering with optional header styling and dynamic collection support.
packages/components/src/components/DropdownMenu/components/DropdownMenuPopover/types.ts Defines popover props (placement/offset defaults, flip, non-modal, etc.).
packages/components/src/components/DropdownMenu/components/DropdownMenuPopover/index.ts Barrel export for popover.
packages/components/src/components/DropdownMenu/components/DropdownMenuPopover/DropdownMenuPopover.tsx Implements popover behavior for both menus and submenus using contexts from RAC.
packages/components/src/components/DropdownMenu/components/DropdownMenuPopover/DropdownMenuPopover.module.css Adds sizing/overflow styling for dropdown popover shell/container.
packages/components/src/components/DropdownMenu/components/DropdownMenuItem/types.ts Defines item props including align and data attributes.
packages/components/src/components/DropdownMenu/components/DropdownMenuItem/index.ts Barrel export for item.
packages/components/src/components/DropdownMenu/components/DropdownMenuItem/DropdownMenuItem.tsx Implements dropdown item rendering, submenu chevron, and dev warning for missing textValue.
packages/components/src/components/DropdownMenu/components/DropdownMenuItem/DropdownMenuItem.module.css Styles chevron placement and open-state highlight behavior.
packages/components/src/components/DropdownMenu/components/DropdownMenuHeader/types.ts Defines header props passthrough type.
packages/components/src/components/DropdownMenu/components/DropdownMenuHeader/index.ts Barrel export for header.
packages/components/src/components/DropdownMenu/components/DropdownMenuHeader/DropdownMenuHeader.tsx Wraps RAC Header for component API consistency.
packages/components/src/components/DropdownMenu/components/DropdownMenuFooter/types.ts Defines footer props passthrough type.
packages/components/src/components/DropdownMenu/components/DropdownMenuFooter/index.ts Barrel export for footer.
packages/components/src/components/DropdownMenu/components/DropdownMenuFooter/DropdownMenuFooter.tsx Wraps existing DropdownFooter as a DropdownMenu slot.
packages/components/src/components/DropdownMenu/components/DropdownMenuContent/types.ts Defines menu content props (omitting RAC slot prop).
packages/components/src/components/DropdownMenu/components/DropdownMenuContent/index.ts Barrel export for content.
packages/components/src/components/DropdownMenu/components/DropdownMenuContent/DropdownMenuContent.tsx Implements menu content with default localized empty state and autocomplete-aware messaging.
packages/components/src/components/DropdownMenu/components/DropdownMenuContent/DropdownMenuContent.module.css Styles menu scrolling and empty-state presentation.
packages/components/src/components/DropdownMenu/components/DropdownMenuAutocomplete/types.ts Defines autocomplete wrapper props passthrough type.
packages/components/src/components/DropdownMenu/components/DropdownMenuAutocomplete/index.ts Barrel export for autocomplete wrapper.
packages/components/src/components/DropdownMenu/components/DropdownMenuAutocomplete/DropdownMenuAutocomplete.tsx Wraps RAC Autocomplete and provides search-field defaults via SearchInputContext.
packages/components/src/components/DropdownMenu/components/DropdownMenuAutocomplete/DropdownMenuAutocomplete.module.css Styles the search input wrapper spacing inside the popover.
.storybook/components/Roadmap/data.ts Marks DropdownMenu as done and experimental in the roadmap.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread packages/primitives/src/components/TextField/TextField.tsx Outdated
Comment thread packages/primitives/src/components/TextField/TextField.tsx Outdated
@KamilEmeleev

Copy link
Copy Markdown
Collaborator Author

блокируется скролл при открытии, это особенность реализации?

Так работает react-aria. Меню открывается поверх страницы как модальное окно — поэтому скролл и блокируется. Отключить блокировку отдельно нельзя.

Если сделать меню немодальным, скролл заработает, но меню будет закрываться при прокрутке — react-aria не умеет двигать его за кнопкой.

Так же ведут себя наши Menu и SelectNext.

@KamilEmeleev

Copy link
Copy Markdown
Collaborator Author

если триггер расположен в нижней точке и меню не влазит, то нужно открывать его вверх

image

странный баг, на dev-стенде документации не воспроизводится. поразбираюсь...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants